<?php

/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/8/21
 * Time: 19:50
 */
class 实现图片等比例放大和缩小
{

}

function resizeimage($srcfile,$mySize){

    $size=getimagesize($srcfile);

    switch($size[2]){

        case 1:

            $img=imagecreatefromgif($srcfile);

            break;

        case 2:

            $img=imagecreatefromjpeg($srcfile);

            break;

        case 3:

            $img=imagecreatefrompng($srcfile);

            break;

    }
//源图片的宽度和高度

    $oldImg['w']=imagesx($img);

    $oldImg['h']=imagesy($img);

    if ($oldImg['w']<=$mySize['w'] && $oldImg['h']<156){

        $rate=1;

    }elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']<$mySize['h']){

        $rate=$mySize['w']/$oldImg['w'];

    }elseif ($oldImg['w']<$mySize['w'] && $oldImg['h']>$mySize['h']){

        $rate=$mySize['h']/$oldImg['h'];

    }elseif ($oldImg['w']>$mySize['w'] && $oldImg['h']>$mySize['h']){

        $rate1=$mySize['w']/$oldImg['w'];

        $rate2=$mySize['h']/$oldImg['h'];

        if ($rate1>$rate2){$rate=$rate2;}else{$rate=$rate1;}

    }

    $newImg['w']=$oldImg['w']*$rate;

    $newImg['h']=$oldImg['h']*$rate;

    return "width=".$newImg['w']." height=".$newImg['h'];

}

//应用实例

$mySize=array('w'=>143,'h'=>156);
$imgSize=resizeimage("22.jpg",$mySize);
echo "<img src=\"22.jpg\"".resizeimage("22.jpg",$mySize)."/>";